/**
 * 用户登录状态的相关封装
 */

import base from '@/common/sju.base'
import nav from '@/common/sju.nav'
import request from '@/common/sju.request'
import appConfig from '@/config/config'

let login = {
	/**
	 * @description 判断访问的Page是否需要登录
	 * 如果需要登录, 则判断是否已登录,未登录则跳转到登陆界面
	 * @param {string} url 打开的页面
	 */
	checkLogin: function(url) {
		// 保存不需要登录的页面,如果pageUrl不在数组中存在,则需要登录
		let needLogin = true
		for (let item of appConfig.noLogin) {
			if (item == url)
				needLogin = false
		}
		// 如果需要登录,并且没有登录token标识,则跳转到登陆页面
		let token = login.getValue('token')
		if (needLogin && base.isNull(token)) {
			base.logInfo("需要登录:" + url)
			//微信小程序,提供登录提醒
			//#ifdef MP-WEIXIN
			login.weixinInfo()
			//#endif
			
			//其它平台,直接跳转登录
			//#ifdef APP-PLUS || H5
			nav.redirectTo('/intake/login')
			//#endif

		} else {
			return true
		}
		return false
	},
	/*
	 * @description 微信小程序获取openID
	 */
	weixinLogin() {
		uni.login({
			provider: 'weixin',
			success: function(loginRes) {
				// 获取临时code
				let code = loginRes.code
				console.log('获取临时凭证code')
				console.log(code)
				request('wx/auth/loginByWeixin', 'post', {
					code: code
				}, true).then(res => {
					console.log('微信授权---信息')
					console.log(res)
					// 把后台返回的openID保存到本地存储
					login.saveValue('openID', res.data.openID)
					// 保存token
					login.saveValue('token', res.data.token)
				})
			}
		})
	},
	/**
	 * @description 本地存储 
	 * @param {string} key 保存变量的标识
	 * @param {any} value 保存的值 
	 */
	saveValue: function(key, value) {
		uni.setStorageSync(key, value);
	},
	/**
	 * @description 从本地存储获取key数据
	 * @param {string} key 保存变量的标识
	 */
	getValue: function(key) {
		let value = uni.getStorageSync(key);
		return value;
	},
	/**
	 * @description 从本地存储清除某个key 
	 * @param {string} key 保存变量的标识
	 */
	clearKey: function(key) {
		uni.removeStorageSync(key);
	},
	/**
	 * @description 从本地存储清除所有数据 
	 * @param {string} key 保存变量的标识
	 */
	clearAll: function() {
		uni.clearStorageSync();
	}
}
export default login;
